Software such as an operating system can be installed on a computing device by a device manufacturer and can operate on the computing device to provide a variety of functions. If a user wishes to perform a factory reset on a device or wishes to upgrade the operating system with new capabilities, the user may have to use physical media provided by the device manufacturer to install new software. However, in some cases, software can be delivered remotely over a network from the device manufacturer, or within an enterprise from a computing administrator, to the computing device. In such scenarios, the computing device may need a number of mechanisms to determine that security of the software has not been compromised. Further, such remote software delivery often exposes the data to being leaked or to unauthorized duplication of the software.